iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0

你一定有想過為何跟另一位同學的程式都可以執行,我的卻顯得非常冗長且難以閱讀呢?
這一切都跟演算法有緊密的關係。

演算法(Algorithm) 的核心是解決問題的SOP
我們舉一個簡單的生活例子
1.輸入(Input):準備一包泡麵、一壺熱水
2.步驟

  • 將包裝撕開。
  • 取出麵體和調味包,放入碗中。
  • 撕開調味包,將調味料灑在麵體上。
  • 注入熱水,直到蓋過麵體。
  • 蓋上蓋子(或用書本壓住),等待三-五分鐘。

3.輸出(Output):一碗可以食用的泡麵。

這個 「為了解決特定問題,而設計的一系列清晰、有限的執行步驟」 ,就是演算法的本質。

在電腦科學中,演算法的定義更嚴謹一些:

是一組定義明確的指令,用於解決某一類問題或執行一項計算。它接收一個或多個輸入值,並在有限的步驟後,產生一個或多個輸出值。

評斷一個演算法的好壞,主要有以下三點:
1.正確性:演算法必須在任何合法的輸入下,都能得到預期的正確輸出。
2.效率:分為以下兩種

  • 時間複雜度(Time Complexity):執行這個演算法需要花費多少時間?
  • 空間複雜度(Space Complexity):執行這個演算法需要佔用多少記憶體空間?

3.可行性:演算法必須在可接受的時間內達到目的,並且沒有無限循環的情況。


演算法的簡單介紹就到這裡啦!
我們下一篇見!/images/emoticon/emoticon41.gif


系列文
LeetCode演算法解密:30天強化演算法戰力1
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言